// rafThrottle 的作用是通过 requestAnimationFrame 来限制函数的执行频率，确保在
// 浏览器的每一帧中最多只执行一次 fn。这在处理高频事件（如鼠标移动、窗口缩放等
// ）时非常有用，可以避免过度的函数调用导致的性能问题。
// requestAnimationFrame 节流（你也可以改用 lodash 的 throttle）
// setTimeout 实现的节流函数（每 delay 毫秒内最多执行一次）
 function throttle(fn, delay = 100) {
  let lastTime = 0;
  return function (...args) {
    const now = Date.now();
    if (now - lastTime >= delay) {
      lastTime = now;
      fn.apply(this, args);
    }
  };
}



function debounce(fn, delay = 300) {
  let timer = null;
  return function (...args) {
    if (timer) clearTimeout(timer);
    timer = setTimeout(() => {
      fn.apply(this, args);
    }, delay);
  };
}

export { throttle, debounce };
